#实验6
#导包
from selenium import webdriver
from time import sleep
from selenium.webdriver.common.by import By
import difflib  #相似度匹配

#反爬
op = webdriver.ChromeOptions()
op.add_experimental_option('excludeSwitches', ['enable-automation'])
op.add_experimental_option('useAutomationExtension', False)

#打开Chrome浏览器
driver = webdriver.Chrome(options=op)

#1）打开百度新闻首页，http://news.baidu.com/
driver.get("http://news.baidu.com/")
sleep(1)#持续时间1秒

#2）在打开的页面上单击第二条热点新闻
ele2=driver.find_element(By.CSS_SELECTOR,'#pane-news > div > ul > li.hdline1 > strong > a:nth-child(1)')#找到链接



#3）热点新闻在新的页面打开，内容与标题一致
content=ele2.text#获取标题
print("content:",content)
# url=ele2.get_attribute('href')#根据链接断言
ele2.click()
sleep(1)

#句柄
current=driver.current_window_handle #当前(活动)页面的句柄
all_handles=driver.window_handles#所有页面的句柄
print("current：",current)#句柄打印出来的是python中的列表
print("all_handles：",all_handles)

driver.switch_to.window(all_handles[1])#第二个页面的下标用1表示
title=driver.title
print(title)
print("current：",driver.current_window_handle)

#相似度匹配
if len(content)>10:#取前10个字符
    content=content[0:10]#从第0个到第9个字符
    if len(title)>10:
        title=title[0:10]


#相似度匹配
rate=difflib.SequenceMatcher(None,content,title).quick_ratio()
print(rate)

# nowurl=driver.current_url#根据链接断言
# assert url in nowurl#根据链接断言
assert rate>0.1

#4）关闭热点新闻新页面
driver.close()
sleep(5)

# 5）在百度新闻首页搜索框中输入新闻内容，单击“搜索”按钮
driver.switch_to.window(all_handles[0])
driver.find_element(By.CSS_SELECTOR,'#ww').send_keys('疫情最新消息')
driver.find_element(By.CSS_SELECTOR,'#s_btn_wr').click()

# 6）搜索内容与输入内容一致
title=driver.title
print(title)
assert '百度资讯搜索_疫情最新消息' in title

driver.quit()
